﻿'use strict';


// Declare app level module which depends on filters, and services
var app = angular.module('app', [
    'ngAnimate',
    'ngCookies',
    'ngStorage',
    'ui.router',
    'ui.bootstrap',
    'ui.load',
    'ui.jq',
    'ui.validate',
    'pascalprecht.translate',
    'app.filters',
    'app.services',
    'app.directives',
    'app.controllers',
    'ngMap',
    'infinite-scroll',
    'ng-iscroll',
])
.run(
  ['$rootScope', '$state', '$stateParams', '$window', '$anchorScroll','$location',
function ($rootScope, $state, $stateParams, $window, $anchorScroll, $location) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;
    $rootScope.name = "结伴";

    var locationChangeSuccess = $rootScope.$on('$stateChangeSuccess', locationChangeSuccess);
    function locationChangeSuccess(event, newUrl, oldUrl) {
        //var old = $location.hash();
        //$location.hash('body');
        //$anchorScroll();
        //$location.hash(old);
    }

}
  ]



)
.config(
  ['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$compileProvider', '$filterProvider', '$provide',
    function ($stateProvider, $urlRouterProvider, $controllerProvider, $compileProvider, $filterProvider, $provide) {

        // lazy controller, directive and service
        app.controller = $controllerProvider.register;
        app.directive = $compileProvider.directive;
        app.filter = $filterProvider.register;
        app.factory = $provide.factory;
        app.service = $provide.service;
        app.constant = $provide.constant;
        app.value = $provide.value;

        //$urlRouterProvider
        //    .otherwise('/app/dashboard');

        $urlRouterProvider
            .otherwise('/hy/app/newlink');

        $stateProvider
             .state('hy', {
                 abstract: true,
                 url: '/hy',
                 templateUrl: 'view/layout.html'
             }).state('hy.app', {
                 url: '/app',

                 templateUrl: 'view/layout_mobile.html',

             }).state('hy.app.link', {


                 templateUrl: 'view/_link.html',


                 url: '/link',
                 controller: ['$rootScope',
               function ($rootScope) {
                   $rootScope.name = "结伴同行";

               }]

             })
            .state('hy.app.link_list', {


                templateUrl: 'view/_link_list.html',


                url: '/link_list',
                controller: ['$rootScope',
              function ($rootScope) {
                  $rootScope.name = "结伴同行"
              }]

            })
             .state('hy.app.newlink', {


                 templateUrl: 'view/_newLink.html',


                 url: '/newlink',
                 controller: ['$rootScope',
        function ($rootScope) {
           

               }]

             })
         .state('hy.app.newLink_info', {


             templateUrl: 'view/_newLink_info.html',


             url: '/newLink_info',
             controller: ['$rootScope',
           function ($rootScope) {
               $rootScope.name = "留学圈"
           }]

         })


            //最近
             .state('hy.app.everyday', {
                 url: '/everyday',
                 templateUrl: 'view/_everyday.html',
                 controller: ['$rootScope',
               function ($rootScope) {
                   $rootScope.name = "最近使用"
               }]
             })
          //本地
         .state('hy.app.local', {
             url: '/local',
             templateUrl: 'view/_local.html',
             controller: ['$rootScope',
			    function ($rootScope) {
			        $rootScope.name = "当地生活";

			    }]
         })
         //商家
         .state('hy.app.oversea', {
             url: '/oversea',
             templateUrl: 'view/_oversea.html',
             controller: ['$rootScope',
               function ($rootScope) {
                   $rootScope.name = "留学周边"
               }]
         })
         //个人中心
         .state('hy.app.personal', {
             url: '/personal',
             templateUrl: 'view/_personal.html',
             controller: ['$rootScope',
               function ($rootScope) {
                   $rootScope.name = "个人中心"
               }]
         })
         //创建结伴
          .state('hy.app.create', {
              url: '/create',
              templateUrl: 'view/create.html'
          })
         //完成结伴列表
          .state('hy.app.finlist', {
              url: '/finlist',
              templateUrl: 'view/finlist.html'
          })
         //发布过的结伴
         .state('hy.app.publish', {
             url: '/publish',
             templateUrl: 'view/publish.html'
         })
         //参加过的结伴
          .state('hy.app.join', {
              url: '/join',
              templateUrl: 'view/join.html'
          })
            //吃 + 地图
          .state('hy.app.eat_map', {
              url: '/eat_map',
              templateUrl: 'view/eat_map.html'
          })
            //招聘
          .state('hy.app.zpContent', {
              url: '/zpContent',
              templateUrl: 'view/oversea/zpContent.html'
          })
             .state('hy.app.zpList', {
                 url: '/zpList',
                 templateUrl: 'view/oversea/zpList.html'
             })
            //移民
         .state('hy.app.immigration', {
             url: '/immigration',
             templateUrl: 'view/oversea/immigration.html'
         })
         .state('hy.app.immigrationContent', {
             url: '/immigrationContent',
             templateUrl: 'view/oversea/immigrationContent.html'
         })
       .state('hy.app.studyAbroadContent', {
           url: '/studyAbroadContent',
           templateUrl: 'view/oversea/studyAbroadContent.html'
       })
            //留学

         .state('hy.app.studyAbroad', {
             url: '/studyAbroad',
             templateUrl: 'view/oversea/studyAbroad.html'
         })
           .state('hy.app.adragon', {
               url: '/adragon',
               templateUrl: 'view/oversea/adragon.html'
           })





             .state('hy.app.patriarch', {
                 url: '/patriarch',
                 templateUrl: 'view/_patriarch.html',
                 controller: ['$rootScope',
               function ($rootScope) {
                   $rootScope.name = "家长"
               }]
             })
            .state('hy.app.message', {
                url: '/message',
                templateUrl: 'view/message.html'

            })

        .state('hy.app.datetime', {
            url: '/datetime',
            templateUrl: 'view/datetime.html',
            resolve: {
                deps: ['uiLoad',
                  function (uiLoad) {
                      return uiLoad.load(['js/jquery/fullcalendar/fullcalendar.css',
                                           'js/jquery/jquery-ui-1.10.3.custom.min.js',
                                           'js/jquery/fullcalendar/fullcalendar.min.js',
                                           'js/modules/ui-calendar.js',
                                           'js/app/calendar/calendar.js']);
                  }]
            }
        })


          .state('zhuce', {
              url: '/zhuce',
              template: '<div ui-view class="fade-in-right-big smooth"></div>'
          })
         .state('zhuce.signin', {
             url: '/signin',
             templateUrl: 'view/page_signin.html'
         })
         .state('zhuce.signup', {
             url: '/signup',
             templateUrl: 'view/page_signup.html'
         })
         .state('zhuce.register', {
             url: '/register',
             templateUrl: 'view/page_register.html'
         })
          .state('hy.app.renting', {
              url: '/renting',
              templateUrl: 'view/renting.html'
          })
          .state('hy.app.renting_info', {
              url: '/renting_info',
              templateUrl: 'view/renting_info.html'
          })
          .state('hy.app.eat', {
              url: '/eat',
              templateUrl: 'view/eat.html'
          })
         .state('hy.app.eat_info', {
             url: '/eat_info',
             templateUrl: 'view/eat_info.html'
         })

         .state('hy.app.jieban', {
             url: '/jieban',
             templateUrl: 'view/jieban.html'
         })

         .state('hy.app.link_info', {
             url: '/link_info',
             templateUrl: 'view/_link_info.html'
         })
        .state('hy.app.serviceProvider', {
            url: '/serviceProvider',
            templateUrl: 'view/_serviceProvider.html'
        })
         .state('hy.app.language', {
             url: '/language',
             templateUrl: 'view/oversea/language.html'
         })
         .state('hy.app.languageContent', {
             url: '/languageContent',
             templateUrl: 'view/oversea/languageContent.html'
         })




        //.state('hy', {
        //    abstract: true,
        //    url: '/hy',
        //    templateUrl: 'view/app.html',

        //})
        //.state('hy.home', {
        //    url: '/home',
        //    templateUrl: 'view/home.html'
        //})
        //  .state('zhuce', {
        //      url: '/zhuce',
        //      template: '<div ui-view class="fade-in-right-big smooth"></div>'
        //  })
        // .state('zhuce.signin', {
        //     url: '/signin',
        //     templateUrl: 'view/page_signin.html'
        // })
        // .state('zhuce.signup', {
        //     url: '/signup',
        //     templateUrl: 'view/page_signup.html'
        // })
        // .state('zhuce.signup2', {
        //     url: '/signup2',
        //     templateUrl: 'view/page_signup2.html'
        // })
        //  .state('hy.page1', {
        //      url: '/page1',
        //      templateUrl: 'view/page1.html'
        //  })
        //  .state('hy.page1_info', {  
        //      url: '/page1_info',
        //      templateUrl: 'view/page1_info.html'
        //  })
        //  .state('hy.page2', {
        //      url: '/page2',
        //      templateUrl: 'view/page2.html'
        //  })
        // .state('hy.page2_info', {
        //     url: '/page2_info',
        //     templateUrl: 'view/page2_info.html'
        // })
        // //结伴
        // .state('hy.link', {
        //     url: '/link',
        //     templateUrl: 'view/_link.html'
        // })
        // //本地
        // .state('hy.local', {
        //     url: '/local',
        //     templateUrl: 'view/_local.html'
        // })
        // //商家
        // .state('hy.oversea', {
        //     url: '/oversea',
        //     templateUrl: 'view/_oversea.html'
        // })
        // //个人中心
        // .state('hy.personal', {
        //     url: '/personal',
        //     templateUrl: 'view/_personal.html'
        // })
        // //创建结伴
        //  .state('hy.create', {
        //      url: '/create',
        //      templateUrl: 'view/create.html'
        //  })
        // //完成结伴列表
        //  .state('hy.finlist', {
        //      url: '/finlist',
        //      templateUrl: 'view/finlist.html'
        //  })
        // //发布过的结伴
        // .state('hy.publish', {
        //     url: '/publish',
        //     templateUrl: 'view/publish.html'
        // })
        // //参加过的结伴
        //  .state('hy.join', {
        //      url: '/join',
        //      templateUrl: 'view/join.html'
        //  })
        //.state('hy.datetime', {
        //    url: '/datetime',
        //    templateUrl: 'view/datetime.html',
        //    resolve: {
        //        deps: ['uiLoad',
        //          function (uiLoad) {
        //              return uiLoad.load(['js/jquery/fullcalendar/fullcalendar.css',
        //                                   'js/jquery/jquery-ui-1.10.3.custom.min.js',
        //                                   'js/jquery/fullcalendar/fullcalendar.min.js',
        //                                   'js/modules/ui-calendar.js',
        //                                   'js/app/calendar/calendar.js']);
        //          }]
        //    }
        //})



        //.state('app', {
        //    abstract: true,
        //    url: '/app',
        //    templateUrl: 'tpl/app.html'
        //})
        //.state('app.dashboard', {
        //    url: '/dashboard',
        //    templateUrl: 'tpl/app_dashboard.html'
        //})
        //.state('app.ui', {
        //    url: '/ui',
        //    template: '<div ui-view class="fade-in-up"></div>'
        //})
        //.state('app.ui.buttons', {
        //    url: '/buttons',
        //    templateUrl: 'tpl/ui_buttons.html'
        //})
        //.state('app.ui.icons', {
        //    url: '/icons',
        //    templateUrl: 'tpl/ui_icons.html'
        //})
        //.state('app.ui.grid', {
        //    url: '/grid',
        //    templateUrl: 'tpl/ui_grid.html'
        //})            
        //.state('app.ui.bootstrap', {
        //    url: '/bootstrap',
        //    templateUrl: 'tpl/ui_bootstrap.html'
        //})
        //.state('app.ui.sortable', {
        //    url: '/sortable',
        //    templateUrl: 'tpl/ui_sortable.html'
        //})
        //.state('app.ui.portlet', {
        //    url: '/portlet',
        //    templateUrl: 'tpl/ui_portlet.html'
        //})
        //.state('app.ui.timeline', {
        //    url: '/timeline',
        //    templateUrl: 'tpl/ui_timeline.html'
        //})
        //.state('app.ui.jvectormap', {
        //    url: '/jvectormap',
        //    templateUrl: 'tpl/ui_jvectormap.html'
        //})
        //.state('app.ui.googlemap', {
        //    url: '/googlemap',
        //    templateUrl: 'tpl/ui_googlemap.html',
        //    resolve: {
        //        deps: ['uiLoad',
        //          function( uiLoad ){
        //            return uiLoad.load( ['js/app/map/load-google-maps.js',
        //                                    'js/modules/ui-map.js',
        //                                    'js/app/map/map.js'] ).then(function(){ return loadGoogleMaps(); });
        //        }]
        //    }
        //})
        //.state('app.widgets', {
        //    url: '/widgets',
        //    templateUrl: 'tpl/ui_widgets.html'
        //})
        //.state('app.chart', {
        //    url: '/chart',
        //    templateUrl: 'tpl/ui_chart.html'
        //})
        //// table
        //.state('app.table', {
        //    url: '/table',
        //    template: '<div ui-view></div>'
        //})
        //.state('app.table.static', {
        //    url: '/static',
        //    templateUrl: 'tpl/table_static.html'
        //})
        //.state('app.table.datatable', {
        //    url: '/datatable',
        //    templateUrl: 'tpl/table_datatable.html'
        //})
        //.state('app.table.footable', {
        //    url: '/footable',
        //    templateUrl: 'tpl/table_footable.html'
        //})
        //// form
        //.state('app.form', {
        //    url: '/form',
        //    template: '<div ui-view class="fade-in"></div>'
        //})
        //.state('app.form.elements', {
        //    url: '/elements',
        //    templateUrl: 'tpl/form_elements.html'
        //})
        //.state('app.form.validation', {
        //    url: '/validation',
        //    templateUrl: 'tpl/form_validation.html'
        //})
        //.state('app.form.wizard', {
        //    url: '/wizard',
        //    templateUrl: 'tpl/form_wizard.html'
        //})
        //// pages
        //.state('app.page', {
        //    url: '/page',
        //    template: '<div ui-view class="fade-in-down"></div>'
        //})
        //.state('app.page.profile', {
        //    url: '/profile',
        //    templateUrl: 'tpl/page_profile.html'
        //})
        //.state('app.page.post', {
        //    url: '/post',
        //    templateUrl: 'tpl/page_post.html'
        //})
        //.state('app.page.search', {
        //    url: '/search',
        //    templateUrl: 'tpl/page_search.html'
        //})
        //.state('app.page.invoice', {
        //    url: '/invoice',
        //    templateUrl: 'tpl/page_invoice.html'
        //})
        //.state('app.page.price', {
        //    url: '/price',
        //    templateUrl: 'tpl/page_price.html'
        //})
        //.state('app.docs', {
        //    url: '/docs',
        //    templateUrl: 'tpl/docs.html'
        //})
        //// others
        //.state('lockme', {
        //    url: '/lockme',
        //    templateUrl: 'tpl/page_lockme.html'
        //})
        //.state('access', {
        //    url: '/access',
        //    template: '<div ui-view class="fade-in-right-big smooth"></div>'
        //})
        //.state('access.signin', {
        //    url: '/signin',
        //    templateUrl: 'tpl/page_signin.html'
        //})
        //.state('access.signup', {
        //    url: '/signup',
        //    templateUrl: 'tpl/page_signup.html'
        //})
        //.state('access.forgotpwd', {
        //    url: '/forgotpwd',
        //    templateUrl: 'tpl/page_forgotpwd.html'
        //})
        //.state('access.404', {
        //    url: '/404',
        //    templateUrl: 'tpl/page_404.html'
        //})

        //// fullCalendar
        //.state('app.calendar', {
        //    url: '/calendar',
        //    templateUrl: 'tpl/app_calendar.html',
        //    // use resolve to load other dependences
        //    resolve: {
        //        deps: ['uiLoad',
        //          function( uiLoad ){
        //            return uiLoad.load( ['js/jquery/fullcalendar/fullcalendar.css',
        //                                 'js/jquery/jquery-ui-1.10.3.custom.min.js',
        //                                 'js/jquery/fullcalendar/fullcalendar.min.js',
        //                                 'js/modules/ui-calendar.js',
        //                                 'js/app/calendar/calendar.js']);
        //        }]
        //    }
        //})

        //// mail
        //.state('app.mail', {
        //    abstract: true,
        //    url: '/mail',
        //    templateUrl: 'tpl/mail.html',
        //    // use resolve to load other dependences
        //    resolve: {
        //        deps: ['uiLoad',
        //          function( uiLoad ){
        //            return uiLoad.load( ['js/app/mail/mail.js',
        //                                 'js/app/mail/mail-service.js',
        //                                 'js/libs/moment.min.js']);
        //        }]
        //    }
        //})
        //.state('app.mail.list', {
        //    url: '/inbox/{fold}',
        //    templateUrl: 'tpl/mail.list.html'
        //})
        //.state('app.mail.detail', {
        //    url: '/{mailId:[0-9]{1,4}}',
        //    templateUrl: 'tpl/mail.detail.html'
        //})
        //.state('app.mail.compose', {
        //    url: '/compose',
        //    templateUrl: 'tpl/mail.new.html'
        //})

        //.state('layout', {
        //    abstract: true,
        //    url: '/layout',
        //    templateUrl: 'tpl/layout.html'
        //})
        //.state('layout.fullwidth', {
        //    url: '/fullwidth',
        //    views: {
        //        '': {
        //            templateUrl: 'tpl/layout_fullwidth.html'
        //        },
        //        'footer': {
        //            templateUrl: 'tpl/layout_footer_fullwidth.html'
        //        }
        //    }
        //})
        //.state('layout.mobile', {
        //    url: '/mobile',
        //    views: {
        //        '': {
        //            templateUrl: 'tpl/layout_mobile.html'
        //        },
        //        'footer': {
        //            templateUrl: 'tpl/layout_footer_mobile.html'
        //        }
        //    }
        //})
        //.state('layout.app', {
        //    url: '/app',
        //    views: {
        //        '': {
        //            templateUrl: 'tpl/layout_app.html'
        //        },
        //        'footer': {
        //            templateUrl: 'tpl/layout_footer_fullwidth.html'
        //        }
        //    }
        //})
    }
  ]
)

.config(['$translateProvider', function ($translateProvider) {

    // Register a loader for the static files
    // So, the module will search missing translation tables under the specified urls.
    // Those urls are [prefix][langKey][suffix].
    $translateProvider.useStaticFilesLoader({
        prefix: 'l10n/',
        suffix: '.json'
    });

    // Tell the module what language to use by default
    $translateProvider.preferredLanguage('en');

    // Tell the module to store the language in the local storage
    $translateProvider.useLocalStorage();

}])

/**
 * jQuery plugin config use ui-jq directive , config the js and css files that required
 * key: function name of the jQuery plugin
 * value: array of the css js file located
 */
.constant('JQ_CONFIG', {
    easyPieChart: ['js/jquery/charts/easypiechart/jquery.easy-pie-chart.js'],
    sparkline: ['js/jquery/charts/sparkline/jquery.sparkline.min.js'],
    plot: ['js/jquery/charts/flot/jquery.flot.min.js',
                        'js/jquery/charts/flot/jquery.flot.resize.js',
                        'js/jquery/charts/flot/jquery.flot.tooltip.min.js',
                        'js/jquery/charts/flot/jquery.flot.spline.js',
                        'js/jquery/charts/flot/jquery.flot.orderBars.js',
                        'js/jquery/charts/flot/jquery.flot.pie.min.js'],
    slimScroll: ['js/jquery/slimscroll/jquery.slimscroll.min.js'],
    sortable: ['js/jquery/sortable/jquery.sortable.js'],
    nestable: ['js/jquery/nestable/jquery.nestable.js',
                        'js/jquery/nestable/nestable.css'],
    filestyle: ['js/jquery/file/bootstrap-filestyle.min.js'],
    slider: ['js/jquery/slider/bootstrap-slider.js',
                        'js/jquery/slider/slider.css'],
    chosen: ['js/jquery/chosen/chosen.jquery.min.js',
                        'js/jquery/chosen/chosen.css'],
    TouchSpin: ['js/jquery/spinner/jquery.bootstrap-touchspin.min.js',
                        'js/jquery/spinner/jquery.bootstrap-touchspin.css'],
    wysiwyg: ['js/jquery/wysiwyg/bootstrap-wysiwyg.js',
                        'js/jquery/wysiwyg/jquery.hotkeys.js'],
    dataTable: ['js/jquery/datatables/jquery.dataTables.min.js',
                        'js/jquery/datatables/dataTables.bootstrap.js',
                        'js/jquery/datatables/dataTables.bootstrap.css'],
    vectorMap: ['js/jquery/jvectormap/jquery-jvectormap.min.js',
                        'js/jquery/jvectormap/jquery-jvectormap-world-mill-en.js',
                        'js/jquery/jvectormap/jquery-jvectormap-us-aea-en.js',
                        'js/jquery/jvectormap/jquery-jvectormap.css'],
    footable: ['js/jquery/footable/footable.all.min.js',
                        'js/jquery/footable/footable.core.css'],
    select_city: ['js/3third/select_city.css', 'js/3third/select_city.js'],
    iscroll: ['js/3third/iscroll.js']
}

)


.constant('MODULE_CONFIG', {
    select2: ['js/jquery/select2/select2.css',
                        'js/jquery/select2/select2-bootstrap.css',
                        'js/jquery/select2/select2.min.js',
                        'js/modules/ui-select2.js']
}
)
;